When defining a configuration model in a classic constraint programming system, the modeler must describe the problem space in terms of variables and constraints, where a constraint is a logical relation among variables. A model is an abstract classification of model variables. Constraints restrict the possible values that variables can take and they represent some partial information about the variables of interest, with respect to other variables to which the variables are related. The term “configuration” is used herein to refer to an instance of one configuration model.